package org.spring.bean.factory;

import org.spring.bean.exceptions.BeansException;

/**
 * BeanFactoryAware
 *
 * @author 李坤
 * @date 2022/4/19 17:33
 */
public interface BeanFactoryAware extends Aware {

    /**
     * 将拥有工厂提供给 bean 实例的回调。
     * 在填充普通 bean 属性之后但在初始化回调之前调用，
     * 例如 {@link InitializingBean#afterPropertiesSet()} 或自定义 init 方法。
     *
     * @param beanFactory 拥有 BeanFactory（从不 {@code null}）。bean 可以立即调用工厂的方法。
     *
     * @throws BeansException 在初始化错误的情况下
     */
    void setBeanFactory(BeanFactory beanFactory) throws BeansException;

}
